#include <iostream>
#include <iterator>
#include <algorithm>
#include <cmath>

using namespace std;

#define MAX_N   55

int N;
int an[MAX_N];

#if 0
#define DEBUG
#endif

int GCD(int m, int n) {
    if (m < n) {
        int t = m;
        m = n, n = t;
    }
    while(n != 0) {
        int t = n;
        n = m % n;
        m = t;
    }
    return m;
}

void Process() {
#ifdef DEBUG
    copy(an, an+N, ostream_iterator<int>(cout, " "));
    cout << endl;
#endif
    int n_pairs = N * (N-1) / 2;
    int n_NCF_pairs = 0; //无除1外的公约数对
    for (int i = 0; i < N; i++) {
        for (int j = i+1; j < N; j++) {
            if (GCD(an[i], an[j]) == 1) {
                n_NCF_pairs++;
            }
        }
    }
#ifdef DEBUG
    cout << "n_pairs: " << n_pairs << endl;
    cout << "n_NCF_pairs: " << n_NCF_pairs << endl;
#endif
    if (n_NCF_pairs == 0) {
        cout << "No estimate for this data set." << endl;
    }
    else {
        cout.precision(6);
        cout.setf(ios::fixed,ios::floatfield);
        cout << sqrt((double)n_pairs / n_NCF_pairs * 6) << endl; 
    }
}

int main() {
    while(cin >> N && N != 0) {
        for (int i = 0; i < N; ++i) {
            cin >> an[i];
        }
        Process();
    }
}
